Добавить аналитические возможности:
   - графики по типам трат по месяцу или выбранному периоду
   - сравнительные графики
   - круговые диаграммы или что-то подобное


  Добавить поиск юзера по id или почте перед отправкой приглашения
  Создание отдельной доски трат, например, для поездки. С периодом или без?
  Выбор приоритетной доски
    Как закидывать юзера из базы на страницу ошибки? Или сделать другую шапку для этой страницы?
    Как заменить пользователя в сессии, чтобы каждый раз его не брать из базы, а только, например, на главной странице с тратами?

    Фильтр и поиск трат:
    - Сделать страницу с выводм трат и фильтрами
    - поиск по описанию (вхождение слова, части слова в описание)
    - сумма равна, больше или меньше
    - на дату или период (до, после, от - до). Если предел не указан то брать экстремум соотвествующего значения
    - трата своя, определённого пользователя из группы или по всей группе
    - тип траты - выбирать чекбоксами из всех типов, если не выбран ни один тип, то поиск по всем

    Добавить сортировку и поиск пользователей ддя админки:
      - имение - вхождение
      - почта - вхождение
      - активный
      - забанен
      - в группе
      - роли
      - в группе
      - количество друзей - от до
      - pageable

      Удаление запроса при его приёме после всех прочих выполненных операций


 Сделать приложение REST full. Swagger

V    Как нормально отображать таблицу с большим количеством колонок?
V  Если админ удаляет пользователя, то, если он в группе:
V  1. Группа из двух - её больше не будет у пользователя должен восстановиться SUPERUSER
V  2. В группе больше двух и удаляемый SUPERUSER - восстановить SUPERUSER у первого в группе

V  Сделать отправляемую ссылку по почте незахардкоженную.
V  Отправка приглашения сделать или по REST, или редирект на страницу, откуда было оно отправлено - потом. Нужно как-то отображать ошибки, полученные по REST
    Всплывающие оккна не заработали (видимо моя разметка страницы - шлак). Через alert не охота, поэтому пока добавление только через UI.

X  Вытащить My group на панель, если пользователь в группе - не нао, пусть там остаётся
V  Убрать из Добавить кнопку Invites. Пусть там будет написано, что юзер не SU.

X Добавить в траты поле об изменении траты (последнем или все изменения?)
V  Перенести список друзей в другую таблицу?
V  Сделать отдельный контроллер (и сервис?) на регистрацию и восстановление пароля?

V  Нужно более логично разнести конечные точки по контроллерам. Сейчас очень много вперемешку.
V  Что-то отвалилось при приёме приглашения - переходит на страницу error
V  Что-то отвалилось при удалении себя из группы - не удаляет и переходит на страницу error
X  Отправить приглашение самому себе? - пока ничего не происходит, но далее выдавать ошибку - не надо
X  Отправлять приглашения можно не только по почте, но и по id? - не надо, e-mail уникален

V  Перевести пароли на bCrypt
V  Смена пароля админом? Надо ли? - нет! Есть функция восстановления пароля через смену.
V  После использования EmailRequest used остался false

V  Перевести updateOrCreate на @Valid и Payment. Как проверить, что введённая сумма не число, так и не нашёл. Через DTO, наверное?
V  Подправить страницу редактирования/создания траты. Перейти на div с таблицы?
V  Если исправлять трату, будучи в группе, и указать сумму 0, то вылетает исключение
V  Если вносить несколько трат и указать 0, так же вылетает ошибка

V     Перенести всю логику их UI контроллеров в абстрактные контроллеры или сервисы

V  Проверить работу страницы error. Похоже, там что-то отвалилось
V  - Если отправить приглашение несуществующему юзеру, то пустая страница ошибки
V    как просмотреть свои отправленные приглашения? (Если кто-то удалится из группы, то потом его пригласить нельзя, пока не перелогинится приглашающий)
V    сделать проверку на новые уведомления. Например,юзеру поступил запрос в друзья (флаг поднялся), он отправил приглашение в друзья, которое приняли,
     у него удалилось его отправленное приглашение, но флаг не сбросился.
V     Если у пользователя удаляется уведомление по любой причине (его удаляет отправивший, или отправивший вступает в другую группу,
     и его приглашение удаляется), то выполнять проверку, есть ли у пользователя ещё не показанные уведомления, если нет, то
     флаг сбрасывать.
V     Устанавливать флаг прочитано у уведомления при его запросе

    Сделать возможным выбор цвета трат друзей.
V  - добавить класс Friend и таблицу
V  - изменения в классе User
V  - изменения в UserService
V  - изменение в логике отправки приглашения
V  - изменение в логике принятия приглашения
V  - изменение в логике удаления суперюзером из группы
V  - изменение в логике удаления себя из группы
V  - добавить возможность устанавливать цвет на друзей на странице настроек аккаунта
V  - вывод трат с учётом цвета
V  - изменения в общем списке трат и списке со столбцом
V  - убрать старую логику из моделей, сервисов, базы (сохранение списка друзей в виде строки)
V  - сортировка юзеров в группе
V  - изменить цвет своей траты сейчас невозможно...

V  Почему-то перестало работать удаление пользователя из группы. Он удаляется, но в группе админа группы всё равно остаётся...

V  Добавить возможность суперюзеру установить одну дату всем в группе. Свою или выбрать?
V   При изменении начальной даты одним юзером в группе, менять у всех? Нет, дата меняется только у того, кто меняет. При вступлении в группу меняется на дату пригласившего
V  - почему-то перестали нормально отображаться ошибки на странице error и нет параметров запроса в строке. Нужно разобраться.

V Поддержка включения/выключения юзера в панели админа
V  Пользователь не обновляется из базы, пока не перелогинится. Как быть?
V  Каждый раз при переходе на любую страницу брать юзера из базы? - на главной странице запрос из базы. На странице уведомлений сброс и запись в базу
V - в юзера добавить флаг о наличии новых сообщений, который поднимается при появлении сообщения. При входе на страницу со списком сообщений
    флаг сбрасывается. Это бы как-то переделать. Или нет?
V - уведомление не появляется, пока пользователь не перелогинится. Каждый раз доставать пользователя из базы?

 Отправка письма подтверждения регистрации на почту
V - юзеры при регистрации по умолчанию должны быть отключены
V  - код для письма должен генерироваться случайным образом (количество символов? 35)
V  - перед отправкой письма проверить, что такого юзера нет
V  - добавить проверку, что введён адрес электронной почты
V - возможность включения и выключения юзера
V - создать таблицу userId, user email, код, тип (регистрация, восстановление пароля, что ещё?), дата, что ещё?
  - код действует только один раз. Сделать сброс флага used после проверки регистрации и восстановления пароля.
 1. Регистрация
V  - перенаправление на страницу логина с уведомлением, что письмо со ссылкой отправлено
V  - пройти по ссылке - страница подтверждения: результат подтверждение или ошибка, если не нет такого кода, код просрочен, код не совпадает с типом запроса
V  - если период действия кода истёк, то кнопка для отправки повторного запроса подтверждения регистрации
V  - нельзя создать второй запрос, пока действует первый
 2. Восстановление пароля
V  - При неправильном логине перевод на дополнительную страницу входа - на страницу логина
V  - На этой странице кнопка "Забыл пароль". Ввод логина (почты) и отправка письма
V  - Пройти по ссылке - страница восстановления пароля. Оттуда редирект на главную
V  - нельзя создать второй запрос, пока действует первый - для этого в базе нужно поле e-mail. Можно по почте достать юзера, и найти список его запросов.
V  - перед созданием запроса на восстановление убедиться, что пользователь есть, иначе вернуться на страницу запроса с ошибкой
V - страницу подтверждения регистрации и методы в контроллерах и сервисах
V - страницу изменения пароля и методы в контроллерах и сервисах
V - шаблон письма регистрации
V - шаблон письма изменения пароля
V - вылезает какая-то лажа, если при смене пароля они не совпадают. Проверить, если неверная длина. Пусть так и остаётся. Если юзер баран, то пусть переходит ещё раз по ссылкам, а не давит миллион раз.
V - проверка множественных запросов? - Не надо, если кто-то другой введёт почту, то владелец аккаунта не сможет сделать запрос. Всё же сделать не более 3 активных.
 - удалять запись со ссылкой из базы сразу после посещения? Нет помечать их использованными
V - если пользователь просрал ссылку с активацией, как перезапросить? За странице запроса пароля.
V - В юзера добавить поле banned, выставляемое при деактивации админом, при этом флаге самостоятельно активировать по ссылке нельзя.
V - Пользователь может активироваться по ссылке, если enabled == false, banned == false на странице восстановления пароля. При создании banned = false.
V - Поправить resendActivationRequest в EmailActionService, если приходит запрос на активацию без code. Из списка нужно брать последний запрос из базы
V - убрать лишнее со страницы login.html. И вычистить редиректы на неё, которые сейчас идут на login-error.html
 - удалять неактивных пользователей? Например, последний вход был год назад? Сделать это через админку.
V - поправить удаление пользователей админом. Мешают данные в других таблицах - исправил в таблицах БД (отслеживание этого самой БД)

V При попытке залогиниться неактивным пользователем указать это, а не говорить, что неверный логин и пароль?
V Внешний вид страниц

V  Добавить имя в верхней части навбара
V  Добавить какой-нибудь вывод, если запросить чужую трату
V  Перевести запросы уведомлений на Specifications

V csrf
V scripts injections

V Объединение досок
V Добавить права в верхнюю строку: USUA

 Объединение трат:
V - добавить в навбар значок с уведомлениями
V - Пользователь должен видеть свои отправленные приглашения с возможностью удалить
V - добавить класс уведомлений: тип уведомления, юзерИД, текст уведомления, дата, новое или нет, прочитано или нет, активное. Можно удалять?
V - добавить в класс юзера уведомления
V - добавить таблицу уведомлений
V - добавить список друзей в юзера. Можно просто список ID юзеров (или emailы?) - email'ы
V - добавить возможность добавлять друзей - на странице вводится адрес почты, кого хочешь добавить, тому приходит уведомление, его можно принять или отказаться
V - если добавлен, то список друзей обновляется у всех из списка.

V - тот, кто добавлял становится суперюзером, и может удалять из списка друзей, у остальных только доступ к просмотру
V - суперюзер может сделать юзера из списка так же суперюзером. Добавить проверку, что юзер в списке друзей
V - теперь на основную доску выводятся траты всех юзеров из списка (разделить их цветами?)
V - поправить запрос трат для разных условий. Создать методы под каждый запрос?
    V get,
    V getByType,
    V getAllToCurrentDate,
    V getAllSelectedPeriod,
V - убрать getAllPayments? или оставить для админа? Пока оставить для админа
V - поправить - не пускает в трату друга
V - обновление траты из группы
V - удаление траты из группы
V - проверить работу обновления и удаления чужой записи
V - добавить юзера траты на страницу траты

V - начальная дата месяца должна синхронизироваться? - да
V - если кто-то в группе сменит дату, менть остальным? - да

  Проверки при добавлении юзера. Если ошибка, то перенаправление на страницу с ошибкой:
V   - если добавляется юзер, который уже есть в списке ничего не делать, перенаправить на страницу с ошибкой
V   - если добавляется юзер, у которого есть список друзей
V   - ограничить размер списка друзей. 5, включая суперюзера?

V  - сделать редирект с параметром запроса через тип ErrorType

V   - нельзя отправить количество приглашений более 5, включая друзей. Вынести ограничение 5 в переменную.
V   - если приглашение отправлено юзеру, который отправил приглашение, или у него есть приглашения, и он его принимает, то остальные приглашения удаляются
V   - сделать проверку при приёме приглашения, что не в группе + удалить все ранее отправленные и полученные приглашения

V  Сделать типы уведомлений. Invite, note и пр. Чтобы можно было массово удалять уведомления по типам.

V В добавлении пункты:
V  Мои отправленные
V   Другая страница, не использовать notes.html
V  Список группы
V В отправленных можно удалить

В списке группы:
V Список группы таблица: почта, имя пользователя, права, удалить (если суперюзер)
V Удалиться
V Удалить (суперюзер)

 Все юзеры изначально супер
V  У добавляемого супер слетает
V  У удаляемого/удалившегося супер восстанавливается

V Во все пользователи должен быть доступ только у админа. Разделить доступ юзера и админа
V Убрать кнопу "Пользователи" для юзеров.
V Убрать дополнительную страницу (index) логина
V Отображение ошибки на странице регистрации
V Отображение ошибки на странице регистрации, если почта уже занята
V На странице регистрации сделать фиксированную ширину полей
V Отображение подтверждения регистрации
V Страница регистрации
V login user from memory change to user from data base
V login page
